perm filename TAP.OL2[TAP,LCS] blob sn#336550 filedate 1978-02-19 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE TAP   
C00005 ENDMK
CāŠ—;
	TITLE TAP   
	SUBTTL PGM TO INPUT RHYTHMS FROM TTY KEYBOARD  
	ENTRY TAP	;CALL TAP(ARRAY V)
TAP:   	JUMP 0
	MOVE 2,[XWD -1,[XWD 17000,1]]
	TTYSET 2,
	MOVEM 1,FOOM#	;PUT RESPONSIBLE TERMINAL # INTO FOOM
	MOVSI 1,377777
	SETPR2 1,	;THIS INITS READING OF SYS TICKS SINCE RELOAD.
	HALT		;FOR SYS ERROR
	HRRZ 16,16
	MOVE @16
	HRRM B1
	AOS 16
	MOVE @16
	HRRM B2
	SPCWAR 636367
	SETZM TOFF#
	SETZM FIRST#
	SETZM FT#
	MOVE	1,[400001,,START]
	SPCWGO	1,
	SKIPE TOFF
	JRST .+4
	MOVEI 1,1
	SLEEP 1,
	JRST .-4

	MOVE I
B2:	MOVEM 0
	SPCWAR 636367
	DETSEG		;GTS RID OF CREATED SEGMENT ??
	JRA 16,1(16)

START:	SKIPE TOFF
	DISMIS
	MOVE 2,400215	;GETS # OF TICKS UPTIME IN AC2
	MOVE 2,400000(2)
	MOVEM 2,TICK#	;SAVE IN TICK
	MOVEI 10,0
	JRST 2,.+1(10)
	MOVE 1,FOOM
	MOVEM 1,FOO#
	TTREAD FOO	;READ A KEY
	MOVE 1,FOO
	TRNN 1,1000	;META KEY
	JRST HIT
CK2:	TRNN 1,400	;CONTROL KEY
	JRST HIT
	MOVE 2,400215	;GETS # OF TICKS UPTIME IN AC2
	MOVE 2,400000(2)
	SUB 2,TICK
	CAIG 2,=600	;IF WE'VE PASSED MORE THAN 600 TICKS, ALL DONE.
	DISMIS
	JRST DONE 

	
HIT:	MOVE 2,400215	;GET CURRENT NUM. OF TICKS
	MOVE 2,400000(2)
	MOVE 3,2
	SUB 2,TICK	;HOW MANY TICKS SINCE WE LAST LOOKED.
	MOVEM 3,TICK	;RESET TICK
	SKIPN FIRST	;IS THIS THE FIRST TAP (FIRST=0)
	JRST TG2
	SETOM FIRST	;NOW WE'LL START MEASURING TIME
	SETZM I#
	SETZM 1
	DISMIS   

TG2:	FSC 2,233
	FMPR 2,TICL
	MOVE 1,I
B1:	MOVEM 2,0(1)	;PUT FLT.PT. NUM. INTO ARRAY
	AOS I
	CAIGE 1,=200	;WHAT FOR?  END OF ARRAY?
	DISMIS

DONE:	SETOM TOFF	;YES, TOO MANY BEATS
	DISMIS		;TOFF=-1 = DONE
TICL:	0.01666667 
	END